Local area networks use a network cable or other media to link stations on the network. Each local area network architecture uses a media access control (MAC) enabling network interface cards at each station to share access to the media.
The Ethernet protocol ISO/IEC 8802-3 (ANSI/IEEE Std. 802.3, 1993 edition) defines a half-duplex media access mechanism that permits all stations to access the network channel with equality. Traffic is not distinguished or prioritized over the medium. Each station includes an Ethernet interface card that uses carrier-sense multiple-access with collision detection (CSMA/CD) to listen for traffic on the media. The absence of network traffic is detected by sensing a deassertion of a receive carrier on the media. A station having data to send will attempt to access the channel by waiting a predetermined time after the deassertion of a receive carrier on the media, known as the interpacket gap (IPG) interval.
A full duplex environment has been proposed for Ethernet networks, referred to as IEEE 802.3x, Full Duplex with Flow Control-Working Draft (0.3). The full duplex environment provides a two-way, point-to-point communication link between two network stations using a switched hub. Hence, two stations can simultaneously transmit and receive Ethernet data packets between each other without collisions.
Network congestion occurs if a receiving station or a switched hub is unable to receive data at the transmission rate of the transmitting station. For example, traffic in a client-server environment is dominated by client requests followed by a burst of frames from the server to the requesting client. Although the full duplex environment enables the server to transmit packets while receiving requests from other clients, only a limited number of client requests can be output from the switched hub to the server. If the number of client requests exceeds the capacity of the hub switching port assigned to the server, some of the data packets will be lost. Alternatively, a client having limited buffer space may be unable to keep up with the transmission rate of the server, resulting in lost packets.
Flow control has been proposed to reduce network congestion, where a sending station temporarily suspends transmission of data packets. A proposed flow control arrangement for a full duplex environment, referred to as IEEE 802.3x[2], specifies generation of a flow control message, for example a PAUSE frame. A transmitting station that receives the PAUSE frame enters a pause state in which no frames are sent on the network for a time interval specified in the PAUSE frame.
Another proposed flow control arrangement for a half duplex environment, referred to as "backpressure", causes a receiving station to force a collision with the transmitting station when the receive buffer of the receiving station reaches a "receive buffer unavailable" state.
The disclosed flow control proposals, however, reduce the effective bandwidth of the network media. For example, if a full-duplex receiving station repeatedly sends PAUSE frames specifying small pause intervals to a transmitting station, the effective bandwidth of the media is reduced due to the transmission of a plurality of 64-byte PAUSE messages instead of data. For example, if a switched hub has a transmit buffer for data to be sent to a station, repeated transmission of PAUSE frames by the switched hub to that station reduces the removal rate of the data from the transmit buffer. Hence, the transmit buffer containing the data for the station may tend to overflow.
Network throughput may also be reduced if the specified pause interval is too long, where the transmitting station may remain in an idle condition after the receiving station has eliminated the congestion.
Data loss may also occur if data packets are sent by the transmitting station after generation of the PAUSE frame by the receiving station. For example, the transmitting station may send a number of data packets before receipt of the PAUSE frame due to propagation delays between the transmitting and receiving stations. The network throughput is further reduced if upper layer protocol requires the last data to be resent.